//引入二次封装的 axios
import request from '@/utils/request'
import type {
  HosPitalDetail,
  DeparmentResponseData,
  LoginData,
  UserLoginResponseData,
  WXLoginResponseData,
  HospitalWorkData,
  DoctorResponseData,
  UserResponseData,
  DoctorInfoData
} from './type'

//枚举请求地址
enum API {
  HOSPITALDETAIL_URL = '/hosp/hospital/',
  //获取某一个医院的科室数据
  HOSPITALDEPARMENT_URL = '/hosp/hospital/department/',
  //获取验证码接口
  GETTUSERCODE_URL = '/sms/send/',
  //用户登录接口
  USERLOGIN_URL = '/user/login',
  //获取微信扫描登录需要的参数接口
  WXLOGIN_URL = '/user/weixin/getLoginParam/',
  //获取某一个医院某一个科室预约挂号的数据
  HOSPITALWORK_URL = '/hosp/hospital/auth/getBookingScheduleRule/',
  //获取某一个医院某一个科室某一天相应医生的排班数据
  HOSPITALDOCTOR_URL = '/hosp/hospital/auth/findScheduleList/',
  //获取某一个账号下就诊人信息
  GETUSER_URL = '/user/patient/auth/findAll',
  //获取挂号医生的信息
  GETDOCTOR_URL = '/hosp/hospital/getSchedule/'
}

//获取医院详情的接口
export const reqHospitalDetail = (hoscode: string) =>
  request.get<any, HosPitalDetail>(API.HOSPITALDETAIL_URL + hoscode)
//获取医院科室的接口
export const reqHospitalDeparment = (hoscode: string) =>
  request.get<any, DeparmentResponseData>(API.HOSPITALDEPARMENT_URL + hoscode)
//获取验证码接口
export const reqCode = (phone: string) => request.get<any, any>(API.GETTUSERCODE_URL + phone)
//用户登录接口
export const reqUserLogin = (data: LoginData) =>
  request.post<any, UserLoginResponseData>(API.USERLOGIN_URL, data)

//获取微信扫描登录生成二维码需要的参数接口
export const reqWxLogin = (wxRedirectUri: string) =>
  request.get<any, WXLoginResponseData>(API.WXLOGIN_URL + `?wxRedirectUri=${wxRedirectUri}`)

//获取预约挂号的数据
export const reqHospitalWork = (page: number, limit: number, hoscode: string, depcode: string) =>
  request.get<any, HospitalWorkData>(
    API.HOSPITALWORK_URL + `${page}/${limit}/${hoscode}/${depcode}`
  )

//获取医生排班的数据
export const reqHospitalDoctor = (hoscode: string, depcode: string, workDate: string) =>
  request.get<any, DoctorResponseData>(API.HOSPITALDOCTOR_URL + `${hoscode}/${depcode}/${workDate}`)

//获取某一个账号下就诊人信息
export const reqGetUser = () => request.get<any, UserResponseData>(API.GETUSER_URL)

//获取挂号医生的信息
export const reqDoctorInfo = (scheduleId: string) =>
  request.get<any, DoctorInfoData>(API.GETDOCTOR_URL + scheduleId)
